package ReflectStudy.util;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class ProxyTest {

    /**
     * 代理方法执行类，通过这个方法可以直接执行指定类中的指定方法
     * @param tClass
     * @param methodName
     * @param <T>
     * @throws NoSuchMethodException
     * @throws InstantiationException
     * @throws IllegalAccessException
     * @throws InvocationTargetException
     */
    public static <T> void invoke(Class<T> tClass,String methodName) throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException {
        // 根据名称获取无参方法对象
        Method method = tClass.getMethod(methodName);
        // 创建实例
        Object instance = tClass.newInstance();
        // 运行该方法
        method.invoke(instance);
    }

}
